(function($) {

    /**
     * Attach this editor to a target element.
     *
     * @param context
     *   A DOM element, supplied by Drupal.attachBehaviors().
     * @param params
     *   An object containing input format parameters. Default parameters are:
     *   - editor: The internal editor name.
     *   - theme: The name/key of the editor theme/profile to use.
     *   - field: The CSS id of the target element.
     * @param settings
     *   An object containing editor settings for all enabled editor themes.
     */
    Drupal.wysiwyg.editor.attach.none = function(context, params, settings) {
        if (params.resizable) {
            $('#' + params.field).addClass('resizable');
            $('#' + params.field).css({display: ''});
            if (Drupal.behaviors.textarea) {
                Drupal.behaviors.textarea();
            }
        }
    };

    /**
     * Detach a single or all editors.
     *
     * @param context
     *   A DOM element, supplied by Drupal.attachBehaviors().
     * @param params
     *   (optional) An object containing input format parameters. If defined,
     *   only the editor instance in params.field should be detached. Otherwise,
     *   all editors should be detached and saved, so they can be submitted in
     *   AJAX/AHAH applications.
     */
    Drupal.wysiwyg.editor.detach.none = function(context, params) {
        if (typeof params != 'undefined') {
            var $textarea = $('#' + params.field, context).removeClass('textarea-processed');
            var $div = $textarea.parents('div.resizable-textarea');
            $div.before($textarea);
            $div.remove();
        }
    };

    /**
     * Instance methods for plain text areas.
     */
    Drupal.wysiwyg.editor.instance.none = {
        insert: function(content) {
            var editor = document.getElementById(this.field);

            // IE support.
            if (document.selection) {
                editor.focus();
                var sel = document.selection.createRange();
                sel.text = content;
            }
            // Mozilla/Firefox/Netscape 7+ support.
            else if (editor.selectionStart || editor.selectionStart == '0') {
                var startPos = editor.selectionStart;
                var endPos = editor.selectionEnd;
                editor.value = editor.value.substring(0, startPos) + content + editor.value.substring(endPos, editor.value.length);
            }
            // Fallback, just add to the end of the content.
            else {
                editor.value += content;
            }
        }
    };

})(jQuery);
